package Gui;

import Silnik.*;
import java.util.ArrayList;
import javax.swing.*;

/**
 *
 * @author kuba
 */
public class Gui extends JPanel implements ReceivingListener
{
   private JPanel wykresy;
   private final WykresWalut rysownik;
   private final WyborWalut waluty;

   public Gui()
   {
      rysownik = new WykresWalut();
      wykresy = new JPanel();
      waluty = new WyborWalut(null, this);
      waluty.initGui();
   }

   public void initGui()
   {
      GroupLayout layout = new GroupLayout(this);
      this.setLayout(layout);
      layout.setAutoCreateGaps(true);
      layout.setAutoCreateContainerGaps(true);

      GroupLayout.SequentialGroup hor = layout.createSequentialGroup();
      hor.addComponent(waluty, 200, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE);
      hor.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED);
      hor.addComponent(wykresy, 600, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE);

      layout.setHorizontalGroup(hor);

      GroupLayout.ParallelGroup vert = layout.createParallelGroup(GroupLayout.Alignment.LEADING);
      vert.addComponent(waluty, 600, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE);
      vert.addComponent(wykresy, 600, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE);

      layout.setVerticalGroup(vert);

      setOpaque(true);
   }

   @Override
   public void pobranoKursy(ArrayList<KursWaluty> kursy)
   {
      ArrayList<Double> wartKursu = new ArrayList<>();
      ArrayList<MyDate> dataNotowania = new ArrayList<>();              
      for (KursWaluty kursWaluty : kursy)
      {
         wartKursu.add(kursWaluty.getKurs());
         dataNotowania.add(kursWaluty.getDzien());
      }
      wykresy.removeAll();
      wykresy.add(rysownik.rysujWykres(wartKursu, dataNotowania,kursy.get(0).getNazwa()));
      wykresy.revalidate();
      this.revalidate();
      SwingUtilities.invokeLater(new Runnable()
      {

         @Override
         public void run()
         {
            wykresy.paintComponents(wykresy.getGraphics());
            Gui.this.repaint();
         }
      });
      
   }

   @Override
   public void skoczonoPobieranie(boolean koniec)
   {
      waluty.uruchomPrzycisk();
   }
}
